1. Field of the Invention
The present invention relates to handling the 100 μs RPR interrupt and similar interrupts by servicing selected interrupts outside of the operating system.
2. Description of the Related Art
Resilient Packet Ring (RPR), specified in IEEE standard 802.17, is a standard designed for the optimized transport of data traffic over shared packet rings. It is designed to provide the resilience found in SONET/SDH networks (50 ms protection), but instead of setting up circuit oriented connections, it provides a packet-based transmission. This is to increase the bandwidth efficiency of packet-based services.
RPR works on a concept of dual counter rotating rings called ringlets. These ringlets are setup by creating RPR stations at nodes where traffic is supposed to drop, per flow (a flow is the ingress and egress of data traffic). Each ring segment used to transport data between stations is referred to as a span. RPR uses MAC (Media Access Control protocol) messages to direct the traffic, which traverses both directions around the ringlet. The nodes also negotiate for bandwidth among themselves using fairness algorithms, avoiding congestion and failed spans. The avoidance of failed spans is accomplished by using one of two techniques known as “steering” and “wrapping”. Under steering if a node or span is broken all nodes are notified of a topology change and they reroute their traffic. In wrapping the traffic is looped back at the last node prior to the break and routed to the destination station.
All traffic on the ring is assigned a Class of Service (CoS) and the standard specifies three classes. Class A (or High Priority) traffic is a pure CIR (Committed Information Rate) and is designed to support applications requiring low latency and jitter, such as voice and video. Class B (or Medium Priority) traffic is a mix of both a CIR and an EIR (Excess Information Rate—which is subject to fairness queuing). Class C (or Low Priority) is best effort traffic, utilizing whatever bandwidth is available. This is primarily used to support internet access traffic.
RPR protocol requires Class C Traffic Fairness State Machines to be run as often as every 100 microseconds (μs). To achieve this in software, the CPU must be interrupted every 100 μs. Processing interrupts at such high rates is difficult in software. The operating system overhead and latency to call the Interrupt Service Routine (ISR) makes it difficult to service interrupts reliably at such frequent intervals. A need arises for a technique that overcomes this limitation to reliably process the 100 μs interrupt and similar interrupts.